iT邦幫忙

2024 iThome 鐵人賽

DAY 1
4

nestjs 介紹

什麼是 nestjs

nestjs 是一個支援使用 Typescript 語言開發的 nodejs 網路應用後端開發框架。

什麼算是可維護性高的程式

1.可讀性高:
對大部分的人能夠遵循一定規則讀懂系統
2.容易修改:
當要修改功能時,能夠方便替換元件

其他 nodejs 框架的問題

1. 沒有統一規範
nodejs 語言面向 web 開發為主。本身有許多後端框架,比如 express, koa, fastify 等等。然而,這些框架的特性是開發規範自由。
2. 沒有標準的設定環境工具
各式各樣的設定方式,導致維護困難或是可讀性不高。

為何使用 nestjs

nestjs 優點

具體而言,有以下幾點是 nestjs 的優點

1. 配置簡單

nestjs 屬於約定大於配置 (Convental over Configuration) 的框架。
代表只需要依照規範設定所需要的配置,其他則會產用預設值。

2. 具有一些標準的規範架構

需要透過標準寫法才能讓 nestjs 開發的應用建立起來。
所以具有其基礎架構,雖然有些部份還是很彈性。
但在遵守 nestjs 基礎規範的標準上,大部分的 nestjs 專案還是算是好讀

3. 具有內建的 DI 配置

這點讓 nestjs 應用開發方便可以把程式碼的耦合度相降低,讓可測試性提高。
然而,因為 nestjs 仍然是很具有彈性的框架。
有些不當的設計雖然可以運行,仍是可能讓 nestjs 開發的應用不好維護。

4. 具有內建的cli指令

跟 angular 一樣,為了方便搭建 nestjs 應用,官方出了一個 cli 工具可以方便建制 nestjs 配置。

使用 nestjs 的缺點

  1. 學習成本高
  2. 彈性過大,容易誤用元件
  3. 說明文件不夠詳細
  4. 並沒有透過官方網站說明其設計特點

適合使用 nestjs 的時機

  1. 需要使用 Typescript
  2. 服務架構複雜,且需要多人協作
  3. 需要長期維護

不適合使用 nestjs 的時機

  1. 應用簡單
  2. 不需要透過 nestjs 規範多人協做標準

總結

主要不同於其他 nodejs 框架的點是上面nestjs 特性的第 2 點,能夠讓專案的可維護性增加。其他部份則是需要透過適當的遵守nestjs 特性第 2 點規則,來做服務開發設計。才能達到可維護性增加。


下一篇
nestjs 的依賴注入概念
系列文
透過 nestjs 框架,讓 nodejs 系統維護度增加31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
0
雷N
iT邦研究生 1 級 ‧ 2024-09-03 21:36:32

1212

0
QQBoxy
iT邦研究生 5 級 ‧ 2024-09-04 14:00:48

1212

0
harry xie
iT邦研究生 1 級 ‧ 2024-09-25 11:49:44

1212

我要留言

立即登入留言